#include "TcpServer.hpp"
#include "ServerCal.hpp"

void Usage(const std::string &proc)
{
    std::cout << "\nUsage: " << proc << " serverip serverport\n"
              << std::endl;
}

int main(int argc,char* argv[])
{
    // 手册
    if (argc != 2)
    {
        Usage(argv[0]);
        exit(0);
    }
    uint16_t port = stoi(argv[1]);
    ServerCal cal;
    TcpServer *tsvp = new TcpServer(port, std::bind(&ServerCal::Calculator, &cal, std::placeholders::_1));
    tsvp->InitServer();
    tsvp->Start();
    // Response resp(1000,0);
    // std::string content;
    // resp.Serialize(&content); // 序列化
    // cout<<content<<endl;

    // // 封装报头
    // std::string package = Encode(content);
    // cout<<package;

    // // 解析报文
    // content = "";
    // bool r = Decode(package,&content);
    // cout<<content<<endl;

    // // 反序列化
    // Response ret;
    // ret.Deserialize(content);
    // cout << ret._result<<endl;
    // cout << ret._code<<endl;

    // Request req(123, 456, '+');

    // string s;
    // req.Serialize(&s); // 序列化
    // cout << s << endl;
    // s = Encode(s); // 添加报头
    // cout << s;

    // std::string con;
    // bool r = Decode(s, &con); // 解析报头
    // cout << con << endl;

    // // 转换成对象
    // Request rq;
    // rq.Deserialize(con);
    // cout << rq._x <<endl;
    // cout << rq._op << endl;
    // cout << rq._y << endl;
    return 0;
}